{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "import json\n",
        "from autogenstudio import AgentWorkFlowConfig, AutoGenWorkFlowManager"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## AutoGen Studio Agent Workflow API Example\n",
        "\n",
        "This notebook focuses on demonstrating capabilities of the autogen studio workflow python api.  \n",
        "\n",
        "- Declarative Specification of an Agent Workflow \n",
        "- Loading the specification and running the resulting agent\n",
        "\n",
        "\n",
        "> Note: The notebook currently demonstrates support for a two agent setup. Support for GroupChat is currently in development."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "# load an agent specification in JSON\n",
        "agent_spec = json.load(open(\"agent_spec.json\"))\n",
        "\n",
        "# Creat a An AutoGen Workflow Configuration from the agent specification\n",
        "agent_work_flow_config = AgentWorkFlowConfig(**agent_spec)\n",
        "\n",
        "agent_work_flow = AutoGenWorkFlowManager(agent_work_flow_config)\n",
        "\n",
        "# # Run the workflow on a task\n",
        "task_query = \"What is the height of the Eiffel Tower?. Dont write code, just respond to the question.\"\n",
        "agent_work_flow.run(message=task_query)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "agent_work_flow.agent_history"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Group Chat Agent"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "# load an agent specification in JSON\n",
        "agent_spec = json.load(open(\"groupchat_spec.json\"))\n",
        "\n",
        "# Creat a An AutoGen Workflow Configuration from the agent specification\n",
        "agent_work_flow_config = AgentWorkFlowConfig(**agent_spec)\n",
        "\n",
        "# Create a Workflow from the configuration\n",
        "group_agent_work_flow = AutoGenWorkFlowManager(agent_work_flow_config)\n",
        "\n",
        "# Run the workflow on a task\n",
        "task_query = \"plan a two day trip to Maui hawaii\"\n",
        "group_agent_work_flow.run(message=task_query)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "print(len(group_agent_work_flow.agent_history), \"agent messages were involved in the conversation\")\n",
        "group_agent_work_flow.agent_history"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "coral",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.13"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 2
}
